home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. Windows 3
/
dr win3.zip
/
dr win3
/
PROGRAMR
/
FLAT.ZIP
/
FLATSEAR.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-06-19
|
12KB
|
426 lines
#define WIN31
#include <windows.h>
/* For the fancy looking Borland dialog box routines */
#ifdef USES_BWCC
#include <bwcc.h>
#endif
#include "flatm.h"
#pragma hdrstop
#include "flatsear.h"
#include "flatdata.h"
#ifdef USES_MEMCHECK
/* Memory checking routines by StratosWare Corp. */
#include "\wmemchec\memcheck.h"
#endif
/*--------------------------------------------
-
- FLATSEAR.C for Flat Windows Program
-
- Routines to search the data base for
- user selected search parameters
-
- Dennis R. Fischer
- Denam Systems
- 1115 Madison St. NE Suite 226
- Salem, Oregon 97303
-
- CompuServe 70405,1422
- Internet 70405.1422@compuserve.com
-
- Developed with Borland 3.1 Compiler
-
- Free for the taking but please give credit
- where credit is do
-
----------------------------------------------*/
static BOOL bAll, bInvoice, bName, bCompany,
bState, bCountry, bProduct, bYear;
static struct tagFLATDATA FData;
void SetAllSearchs(HWND hwnd){
NulSearchData();
if (GetInvoiceSearch())
SetSearchString(hwnd, SearchForInvoice);
if (GetNameSearch())
SetSearchString(hwnd, SearchForName);
if (GetCompanySearch())
SetSearchString(hwnd, SearchForCompany);
if (GetStateSearch())
SetSearchString(hwnd, SearchForState);
if (GetCountrySearch())
SetSearchString(hwnd, SearchForCountry);
if (GetProductSearch())
SetSearchString(hwnd, SearchForProduct);
if (GetYearSearch())
SetSearchString(hwnd, SearchForYear);
}
void GetSearchNameStr(LPSTR Name)
{
lstrcat(Name, FData.Name);
}
void GetSearchInvoiceStr(LPSTR Invoice)
{
lstrcat(Invoice, FData.Invoice);
}
void GetSearchCompanyStr(LPSTR Company)
{
lstrcat(Company, FData.Company);
}
void GetSearchStateStr(LPSTR State)
{
lstrcat(State, FData.State);
}
void GetSearchCountryStr(LPSTR Country)
{
lstrcat(Country, FData.Country);
}
void GetSearchProductStr(LPSTR Product)
{
lstrcat(Product, FData.Product);
}
void GetSearchYearStr(LPSTR Year)
{
lstrcat(Year, FData.Year);
}
BOOL GetAllSearch (void)
{
return bAll;
}
BOOL GetInvoiceSearch(void)
{
return bInvoice;
}
BOOL GetNameSearch (void)
{
return bName;
}
BOOL GetCompanySearch (void)
{
return bCompany;
}
BOOL GetStateSearch (void)
{
return bState;
}
BOOL GetCountrySearch (void)
{
return bCountry;
}
BOOL GetProductSearch (void)
{
return bProduct;
}
BOOL GetYearSearch (void)
{
return bYear;
}
void SetAllSearch (BOOL bSet)
{
bAll = bSet;
}
void SetInvoiceSearch (BOOL bSet)
{
bInvoice = bSet;
}
void SetNameSearch (BOOL bSet)
{
bName = bSet;
}
void SetCompanySearch (BOOL bSet)
{
bCompany = bSet;
}
void SetStateSearch (BOOL bSet)
{
bState = bSet;
}
void SetCountrySearch (BOOL bSet)
{
bCountry = bSet;
}
void SetProductSearch (BOOL bSet)
{
bProduct = bSet;
}
void SetYearSearch (BOOL bSet)
{
bYear = bSet;
}
void NulSearchData(void)
{
NulData();
GetFlatData(&FData);
}
void SetSearchString(HWND hwnd, SEARCHFORTYPE sfSearch)
{
FARPROC fpSearch;
LPARAM lParam;
fpSearch = MakeProcInstance(SearchForProc, GetInstance());
if (fpSearch) {
lParam = MAKELPARAM(sfSearch, 0);
DialogBoxParam(GetInstance(), "DLG_SEARCHFOR", hwnd, fpSearch, lParam);
FreeProcInstance(fpSearch);
}
}
#pragma argsused
BOOL CALLBACK _export SearchForProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam) {
SEARCHFORTYPE static sfType;
char ts[32];
switch(message) {
case WM_INITDIALOG:
sfType = LOWORD(lParam);
switch (sfType) {
case SearchForInvoice:
SetDlgItemText(hDlg, DLG_SEARCHFORSTR, " Invoice");
SetDlgItemText(hDlg, DLG_SEARCHFORINPUT, "");
SendDlgItemMessage(hDlg, DLG_SEARCHFORINPUT, EM_LIMITTEXT, 7, 0L);
break;
case SearchForName:
SetDlgItemText(hDlg, DLG_SEARCHFORSTR, " Name");
SetDlgItemText(hDlg, DLG_SEARCHFORINPUT, "");
SendDlgItemMessage(hDlg, DLG_SEARCHFORINPUT, EM_LIMITTEXT, 30, 0L);
break;
case SearchForCompany:
SetDlgItemText(hDlg, DLG_SEARCHFORSTR, " Company");
SetDlgItemText(hDlg, DLG_SEARCHFORINPUT, "");
SendDlgItemMessage(hDlg, DLG_SEARCHFORINPUT, EM_LIMITTEXT, 30, 0L);
break;
case SearchForState:
SetDlgItemText(hDlg, DLG_SEARCHFORSTR, " State");
SetDlgItemText(hDlg, DLG_SEARCHFORINPUT, "");
SendDlgItemMessage(hDlg, DLG_SEARCHFORINPUT, EM_LIMITTEXT, 2, 0L);
break;
case SearchForCountry:
SetDlgItemText(hDlg, DLG_SEARCHFORSTR, " Country");
SetDlgItemText(hDlg, DLG_SEARCHFORINPUT, "");
SendDlgItemMessage(hDlg, DLG_SEARCHFORINPUT, EM_LIMITTEXT, 15, 0L);
break;
case SearchForProduct:
SetDlgItemText(hDlg, DLG_SEARCHFORSTR, " Product");
SetDlgItemText(hDlg, DLG_SEARCHFORINPUT, "");
SendDlgItemMessage(hDlg, DLG_SEARCHFORINPUT, EM_LIMITTEXT, 12, 0L);
break;
case SearchForYear:
SetDlgItemText(hDlg, DLG_SEARCHFORSTR, " Year");
SetDlgItemText(hDlg, DLG_SEARCHFORINPUT, "");
SendDlgItemMessage(hDlg, DLG_SEARCHFORINPUT, EM_LIMITTEXT, 4, 0L);
break;
default : break;
}
return TRUE;
case WM_COMMAND:
switch (wParam) {
case IDOK:
switch (sfType) {
case SearchForInvoice:
GetDlgItemText(hDlg, DLG_SEARCHFORINPUT, ts, 8);
lstrcpy(FData.Invoice, ts);
break;
case SearchForName:
GetDlgItemText(hDlg, DLG_SEARCHFORINPUT, ts, 31);
lstrcpy(FData.Name, ts);
break;
case SearchForCompany:
GetDlgItemText(hDlg, DLG_SEARCHFORINPUT, ts, 31);
lstrcpy(FData.Company, ts);
break;
case SearchForState:
GetDlgItemText(hDlg, DLG_SEARCHFORINPUT, ts, 3);
lstrcpy(FData.State, ts);
break;
case SearchForCountry:
GetDlgItemText(hDlg, DLG_SEARCHFORINPUT, ts, 16);
lstrcpy(FData.Country, ts);
break;
case SearchForProduct:
GetDlgItemText(hDlg, DLG_SEARCHFORINPUT, ts, 13);
lstrcpy(FData.Product, ts);
break;
case SearchForYear:
GetDlgItemText(hDlg, DLG_SEARCHFORINPUT, ts, 5);
lstrcpy(FData.Year, ts);
break;
default : break;
}
EndDialog(hDlg, TRUE);
return TRUE;
case IDCANCEL:
EndDialog(hDlg, FALSE);
return TRUE;
}
break;
}
return FALSE;
} /* SearchForProc */
BOOL SetSearch(HWND hW)
{
BOOL bDoit=FALSE;
FARPROC fpSearch;
fpSearch = MakeProcInstance(SearchProc, GetInstance());
if (fpSearch) {
bDoit = DialogBox(GetInstance(), "DLG_SEARCH", hW, fpSearch);
FreeProcInstance(fpSearch);
}
return bDoit;
}
#pragma argsused
BOOL CALLBACK _export SearchProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam) {
LRESULT lState;
WPARAM nNewstate;
switch(message) {
case WM_INITDIALOG:
SendDlgItemMessage(hDlg, DLG_ALL, BM_SETCHECK, 1, 0L);
SendDlgItemMessage(hDlg, DLG_NAME, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_INVOICE2, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_COMPANY, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_STATE, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_COUNTRY, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_PRODUCT, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_YEAR, BM_SETCHECK, 0, 0L);
return TRUE;
case WM_COMMAND:
switch (wParam) {
case DLG_ALL:
SendDlgItemMessage(hDlg, DLG_ALL, BM_SETCHECK, 1, 0L);
SendDlgItemMessage(hDlg, DLG_INVOICE2, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_NAME, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(hDlg, DLG_COMPANY, BM_SETCHECK, 0, 0L);
SendDlgItemMessage(